t Event = require('./05-event.js');

class Dog extends Event {
  constructor(name, energy) {
        super();
            this.#name   = name;
                this.#energy = energy;
                    this.#startTimer();                  
  }

    get name() { return this.#name;  }
      get energy() { return this.#energy;  }
      setEnergy(e) {
            this.#energy = e;
                this.#startTimer();              
      }

        #name      = '';
        #energy    = 0;
        #timer     = null;

#startTimer() {
      if(this.#timer !== null) return;

      this.#timer = setInterval(() => {
        if(this.#energy > 0) {
                  this.emit('bark');
                          this.#energy--;
                                
        } else {
                  clearInterval(this.#timer);
                          this.#timer = null;                       
        }
            
      }, 1000);
        
}

}

module.exports = Dog;

